﻿#include"Date.h"

int main()
{
	Date d1(2024,7,24);                             //
	Date d2(2024,8,13);                          
	Date d3(d2);                                    //拷贝构造,同类型一个存在的对象进行初始化要创建的对象
	Date d4(2024, 9, 21);
	d1.Print();
	d2.Print();
	bool ret1 = d1 < d2;                            //这两个是一样的，d1<d2会转换为d1.operator<(d2)
	bool ret2 = d1.operator<(d2);                   //运算符赋值，已经存在的对象，
	cout << "ret1 = " << ret1 << ", ret2 = " << ret2 << endl;
	d1.Print();
	d2.Print();

	cout << endl;
	d1 = d2= d4;                                   //这里需要返回值，否则不能够连续赋值
	d1.Print();
	d2.Print();	
	d4.Print();

	cout << endl;
	(d1 = d2) = d4;         //先d2赋值给d1,括号里面得到一个返回值d1，然后d4赋值给d1,得到的结果与d1 = d2= d4一样
	d1.Print();
	d2.Print();
	d4.Print();
	d1 = d1;               //自己给自己赋值，不报错，难免喝了二锅头这样写代码


	//累加天数
	cout << "\n加天数" << endl;
	Date d5(2024,9,21);
	Date d6 = d5 + 1000;
	d5.Print();
	d6.Print();
	cout << "\n减去的天数" << endl;
	Date d7(2024, 9, 21);
	Date d8 = d5 - 1000;
	d7.Print();
	d8.Print();

	d7++;
	d7.Print();
	++d7;
	d7.Print();

	d7 += 2;
	d7.Print();

	cout << d2;
	cin >> d2;
	cout << d2;
	

}
